package org.jeecg.modules.simulator.service;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @program: gp2
 * @description:
 * @author: renzhg
 * @create: 2024-09-05 15:46
 **/
public class LsService {


//    public void loadDB() {
//        List<Msg> msgList = new ArrayList<>();
//        String linepath = "D:/aaa1.json";
//        try {
//            String jsonString = new String(Files.readAllBytes(Paths.get(linepath)));
//            JSONArray jsonArray = JSON.parseArray(jsonString);
//            for (int i = 0; i < jsonArray.size(); i++) {
//
//                JSONObject jsonObject = jsonArray.getJSONObject(i).getJSONObject("msg");
//                Msg mst = new Msg();
//                int devType = jsonObject.getInteger("devType");
//                String no = jsonObject.getString("no");
//                String code = jsonObject.getString("code");
//                String trainIndex = jsonObject.getString("trainIndex");
//                String Only_id = jsonObject.getString("Only_id");
//                String groupId = jsonObject.getString("groupId");
//                String rollingstock = jsonObject.getString("rollingstock");
//                String lineName = jsonObject.getString("lineName");
//                int msgId = jsonObject.getInteger("msgId");
//                int express = jsonObject.getInteger("express");
//                String destinationId = jsonObject.getString("destinationId");
//                int speed = jsonObject.getInteger("speed");
//                long otpTime = jsonObject.getLong("otpTime");
//                long arriveTime = jsonObject.getLong("arriveTime");
//                String lineCode = jsonObject.getString("lineCode");
//                long mode = jsonObject.getLong("mode");
//                int rtuId = jsonObject.getInteger("rtuId");
//                int rate = jsonObject.getInteger("rate");
//                long id = jsonObject.getLong("id");
//                long saveTime = jsonObject.getLong("saveTime");
//                String trainId = jsonObject.getString("trainId");
//
//                long departTime = jsonObject.getLong("departTime");
//                String offset = jsonObject.getString("offset");
////                String trainStatus = jsonObject.getString("trainStatus");
//                String END_STATION_ID = jsonObject.getString("END_STATION_ID");
//                String globalId = jsonObject.getString("globalId");
//                int lineId = jsonObject.getInteger("lineId");
//                String devName = jsonObject.getString("devName");
//                int version = jsonObject.getInteger("version");
//                String driverId = jsonObject.getString("driverId");
//                String END_STATION_NAME = jsonObject.getString("END_STATION_NAME");
//                int coccWindowOffset = jsonObject.getInteger("coccWindowOffset");
//                long time = jsonObject.getLong("time");
//                String logic = jsonObject.getString("logic");
//                String position = jsonObject.getString("position");
//                int coccWindow = jsonObject.getInteger("coccWindow");
//                long time1 = jsonObject.getInteger("time");
//                String position1 = jsonObject.getString("position");
//                mst.setDevType(devType);
//                mst.setNo(no);
//                mst.setCode(code);
//                mst.setTrainIndex(trainIndex);
//                mst.setOnly_id(Only_id);
//                mst.setGroupId(groupId);
////                mst.setRollingstock(rollingstock);
//                mst.setLineName(lineName);
//                mst.setMsgId(msgId);
//                mst.setExpress(express);
//                mst.setDestinationId(destinationId);
//                mst.setSpeed(speed);
//                mst.setOtpTime(otpTime);
//                mst.setArriveTime(arriveTime);
//                mst.setLineCode(lineCode);
//                mst.setMode(mode);
//                mst.setRtuId(rtuId);
//                mst.setRate(rate);
//                mst.setId(id);
//                mst.setSaveTime(saveTime);
//                mst.setTrainId(trainId);
//                mst.setDepartTime(departTime);
//                mst.setOffset(offset);
////                mst.setTrainStatus(trainStatus);
//                mst.setEND_STATION_ID(END_STATION_ID);
//                mst.setGlobalId(globalId);
//                mst.setLineId(lineId);
//                mst.setDevName(devName);
//                mst.setVersion(version);
//                mst.setDriverId(driverId);
//                mst.setEND_STATION_NAME(END_STATION_NAME);
//                mst.setCoccWindowOffset(coccWindowOffset);
//                mst.setTime(time);
//                mst.setLogic(logic);
//                mst.setPosition(position);
//                mst.setCoccWindow(coccWindow);
//                mst.setTime(time1);
//                mst.setPosition(position1);
//
//
//                // Ex
////                Msg mst = JSON.parseObject(jsonArray.getJSONObject(i).toString(), Msg.class);
//                msgList.add(mst);
//            }
//            System.out.println("read----end");
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        msgList.forEach(System.out::println);
//        Map<String, List<Msg>> groupedByLineName = msgList.stream()
//                .collect(Collectors.groupingBy(msg -> msg.getTrainId() + "-" + msg.getGlobalId()));
//        for (Map.Entry<String, List<Msg>> entry : groupedByLineName.entrySet()) {
//            System.out.println(entry.getKey());
//            entry.getValue().forEach(System.out::println);
//
//
//        }
//    }
}
